Multicast routing is used to avoid duplicate transmission of the same packet over the same network link. Unlike unicast routing, where an incoming packet at a router is copied onto exactly one outgoing link that has a unique end point (i.e., node), in multicast routing a packet can be copied onto more than one link that each having a distinct end point or it can be copied on a broadcast interface (e.g., radio frequency (RF) wireless interface, Ethernet, etc.) with a multicast or broadcast address (e.g., MAC address) so that more than one end point can receive it. This process repeats itself at each node designated as multicast router or relay.
FIG. 1 illustrates an example of a network. Referring to FIG. 1, network 100 has four wireless routers, labeled as A, B, C, and D, and eight wireless client nodes 101-108 which are subscribed to the same multicast session (e.g., they listen to the same IP multicast address to receive the packets of the same session). Each of routers A-D and its downstream nodes (i.e., the nodes that receive multicast packets from this router) are connected through a broadcast medium and whenever a router sends a packet for a given multicast session, it utilizes a common broadcast channel listened to by all the downstream nodes and a session multicast address (e.g., IP multicast address assigned to the multicast session, connection ID assigned at the link layer, etc.). For purposes herein, the term “channel” can be physical such as time-slot, frequency band, spreading code, etc., it can be logical such as MAC broadcast/multicast address, or it can be a combination of both. Under ideal circumstances, the packet is transmitted once by the router and all the receivers correctly receive it. When routers B and C receive a multicast packet, they re-transmit the same packet to their downstream nodes in their corresponding broadcast channels (e.g., channels 2 and 3, respectively, in FIG. 1). When router D receives the packet sent by router B, it resends the same packet over the broadcast channel 4.
Unfortunately, this ideal mode of operation where each downstream node receives the information at the first time it is transmitted by the upstream router is not a realistic assessment especially when the broadcast medium is a wireless RF channel. Indeed, the successful reception of a packet becomes a probabilistic event that varies from one receiver to another. Therefore, while some of the downstream nodes can successfully receive a particular multicast packet, the remaining downstream nodes in fact may not receive it successfully. Since there may be a large number of receivers, it is not desirable to have each receiver notify the sender about successful transmissions by sending an acknowledgement (ACK) message. An ACK-based approach can significantly drain the bandwidth resources considering the fact that under good channel conditions, most of the receivers will receive and send back an ACK message. With this consideration, a negative ACK (NACK) based system can be utilized. However, there is ambiguity in terms of which receivers are going to send a NACK message in case more than one receiver have not received the packet correctly. One way is to allocate a slot (or sub-channel, sub-carrier, etc.) for each receiver, which may result in many unused bandwidth resources. Many systems utilize a random back-off procedure to resolve any conflicts, which makes NACK based approaches more efficient than ACK based approaches when fewer nodes have unsuccessful reception. One problem with NACK-based solutions is that the receiver node must be able to decode the MAC header correctly. To avoid such complications, many broadband wireless standards such as IEEE 802.11 or IEEE 802.16 do not impose a reliable multicast or broadcast transmission and no link layer (LL) retransmission mechanism (neither with ACK nor NACK) is supported in those modes of operation.
Broadband wireless standards such as 802.11 and 802.16 provide reliable link/MAC layer operations only for unicast transmissions, e.g., only one receiver is targeted to send the packet and each successful packet reception is acknowledged (ACKed) by that receiver. On the other hand, broadcast or multicast transmissions where more than one receiver is expecting the packet are executed in an unreliable fashion with no receipt acknowledgements.
Link layer reliability issue for multicast/broadcast flows has been investigated heavily for satellite links which mainly suffer from the high round trip time delay. Due to the high order of magnitude of the number of receivers in a satellite footprint, reliable multicasting and collecting feedback from each receiver pose a formidable task. The state of the art in the area is to use coding (fixed rate codes with incremental redundancy or rateless codes) and selection of feedback nodes in conjunction with one another. The selection of feedback nodes is generally done via tracking the subset of receivers with the worst case channel conditions. The tracking criterion can be as simple as the number of encoding packets required to be able to decode the multicast content or signal to noise ratio at the receivers. However, in satellite multicasting, the feedback is typically collected from receivers that have bad reception quality. Also, in satellite multicasting, a reliable link layer for all the receivers is targeted.
Many reliable multicast proposals exist for the transport layer. On such proposal is referred to as a reliable multicast transport protocol (RMTP) and achieves reliability by using a packet based selective repeat retransmission scheme. In particular, each ACK packet carries a sequence number and a bitmap, the receivers are grouped into a hierarchy of local regions, and a tree-topology is generated, where receivers in each local region periodically send ACKs to their parents. The ACK messages are transmitted to the parent nodes in the higher layer only, and the ACK-implosion problem is effectively reduced.
Another example of a multicast proposal involves the selectively reliable multicast protocol (SRMP) that has three modes of operation. The first mode is the best-effort transmission of the data which does not require reliable transport; the second mode requires reliable reception of the data by all nodes in the network; and the third mode requires that the data is received reliably by a single dynamically-selected node of the multicast group.
In another example, an application-level reliable multicasting system uses the Overcast technique in which an overlay network is used to provide scalable and reliable multicast by building efficient distribution trees that adapt to changing network conditions. The scalability and reliability is achieved using multiple multicast groups.
In another example, a scalable reliable multicast transmission is maintained by combining FEC with ARQ. In such a case, the FEC and ARQ are used for the retransmission of parity data to recover from the loss of original data packets.